[Linux]03 大数据常用命令 三

用户权限以及性能相关命令

Posted by 李玉坤 on 2018-02-24

/etc/passwd文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@hadoop k]# cat /etc/passwd
其中有一行:
k:x:1001:1002::/home/k:/bin/bash

当/bin/bash是/bin/false或者/sbin/nologin
[root@hadoop k]# su - k 命令是切换用户切不过去的

在安装CDH的时候/etc/passwd文件很多组件默认是/bin/false或者/sbin/nologin
CDH 很多的组件
hdfs组件 hdfs用户
su - hdfs
对应修改为 /bin/bash

hbase组件 hbase用户
su - hbase
yarn组件 yarn用户

一一修改

权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
错误: Permission denied 时;意思是没有权限

chmod -R 777 文件夹/文件路径 #777 代表任意的用户用户组 都读写执行 权限
chown -R 用户:用户组 文件夹/文件路径


[hadoop@hadoop ~]$ ll
总用量 64
drwxrwxr-x. 29 hadoop hadoop 4096 1111 14:20 app
drwxrwxr-x. 5 hadoop hadoop 4096 67 14:52 data
-rw-rw-r--. 1 hadoop hadoop 700 68 17:28 derby.log

第一个字母: d文件夹 -文件 l连接
rwx r-x r-x

r: read 4
w: write 2
x: 执行 1
-: 没权限 0

7=rwx
3=wx
5=rx

d rwx r-x r-x 2 hadoop hadoop 6 68 17:28 XXX
rwx 第一组 7 代表文件或文件夹的用户hadoop ,读写执行
r-x 第二组 5 代表文件或文件夹的用户组hadoop ,读执行
r-x 第三组 5 代表其他组的所属用户对这个文件或文件夹的权限: 读执行

查看文件目录大小

1
2
3
4
5
6
文件:
ll
du -sh xxx.log

文件夹:
du -sh yyy

搜索 find

1
2
3
4
5
6
history 历史记录
ps -ef 查看进程
top 系统情况

假如要查看某个大数据组件 hbase 部署在哪里
[hadoop@hadoop ~]$ find / -name '*hbase*' # * 代表模糊匹配

vim / vi命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
1、粘贴的坑:必须在i键 编辑模式

2、常用操作
a. 上下键 移动光标
b. 按 i键insert 进入 编辑模式
c. 开始编辑
d. 按 esc键退出 编辑模式,进入命令行模式
e. 按 shift+: 键,进入尾行模式
f. 输入 wq 保存退出

3、找error

cat xxx.log | grep -C 10 ERROR > error.log

对于error.log 可以cat查看 或者 more查看 或者 sz到window桌面

进入尾行模式:/关键词 回车自动匹配 按N键找寻下一个

4、设置行号,可以看到行号
进入尾行模式:
输入: set nu 标记行号
或者输入:set nonu 结束标记行号

5、清空这个内容
cat /dev/null > xxx.log 完美
echo '' > xxx.log 存在1个字节

命令行模式常见的快捷键:
dd 删除当前行
dG 删除光标当前及以下的所有行
ndd 删除光标当前及以下的n行

gg 跳转到第一行的第一个字母
G 跳转到最后一行的第一个字母
shift+$ 行尾

gg + dG 清空所有

场景: 从另外一个文本拷贝内容去覆盖这个文件
大数据的组件都是xml文件
1.官方的默认的配置文件 xxxxxxx 30
2.window记事本 editplus 编辑好对应的参数 编辑完毕后是300
坑: cp备份

mysql的 my.cnf

vim / vi 编辑文件异常

1
2
3
4
5
6
第一次编辑 保存失败的时候
[hadoop@hadoop ~]$ vi XXX.log

ctrl+x/z 会产生swp文件

ll -a 查看这个隐藏文件,删除即可 .XXX.log.swp

系统命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#磁盘
[hadoop@hadoop ~]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 47G 15G 33G 31% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 189M 826M 19% /boot
tmpfs 378M 0 378M 0% /run/user/1000
tmpfs 378M 0 378M 0% /run/user/0

# 内存
[hadoop@hadoop ~]$ free -m #或则-h
total used free shared buff/cache available
Mem: 3771 435 2966 11 368 2996
Swap: 2047 0 2047

参考博客
http://blog.itpub.net/30089851/viewspace-2131678/


#负载
[hadoop@hadoop ~]$ top
top - 11:37:38 up 9:22, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 118 total, 2 running, 116 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3861508 total, 3037300 free, 446708 used, 377500 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 3067784 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 193572 6636 4136 S 0.0 0.2 0:06.68 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.32 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.07 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:02.16 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:00.26 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.25 watchdog/1

一个系统卡不卡主要看
load average: 0.00, 0.01, 0.05
1min 5min 15min
经验值 不要超过10 否则认为此物理服务器(同等配置云服务器比物理要下降20%的性能) IDC机房

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
177 root 20 0 0 0 0 S 50% 70% 0:34.13 xxxx 去看看xxx这个进程是做什么 来判断为什么消耗那么多的cpu和内存
1777 root 20 0 0 0 0 S 3908% 80% 0:34.13 hbase regionserver 原因有可能是进程夯住/有问题/代码级别问题/硬件级别-内存条坏了

查看进程 查看端口号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
1、进程
[hadoop@hadoop ~]# ps -ef|grep XXX

[hadoop@hadoop ~]$ ps -ef | grep ssh # 查看所有
root 9117 1 0 15:50 ? 00:00:00 /usr/sbin/sshd -D
root 9719 9117 0 15:50 ? 00:00:00 sshd: hadoop [priv]
hadoop 9723 9719 0 15:50 ? 00:00:00 sshd: hadoop@pts/1
hadoop 9801 9724 0 16:08 pts/1 00:00:00 grep --color=auto ssh
[hadoop@hadoop ~]$ ps -ef | grep ssh | grep -v grep #排除自身查看
root 9117 1 0 15:50 ? 00:00:00 /usr/sbin/sshd -D
root 9719 9117 0 15:50 ? 00:00:00 sshd: hadoop [priv]
hadoop 9723 9719 0 15:50 ? 00:00:00 sshd: hadoop@pts/1

进程用户 进程的pid 父id 进程用户的内容(进程所属的目录 log -Xmx -Xms)

2、端口号
[hadoop@hadoop ~]$ netstat -nlp #可以查看所有进程的端口号

# 查看ssh进程9117的信息对应端口号可以看到是22
[root@hadoop ~]# ps -ef | grep ssh
root 9117 1 0 15:50 ? 00:00:00 /usr/sbin/sshd -D
root 9719 9117 0 15:50 ? 00:00:00 sshd: hadoop [priv]
hadoop 9723 9719 0 15:50 ? 00:00:00 sshd: hadoop@pts/1
root 9814 9117 0 16:11 ? 00:00:00 sshd: root@pts/0
root 9868 9818 0 16:14 pts/0 00:00:00 grep --color=auto ssh
[root@hadoop ~]# netstat -nlp |grep 9117
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 9117/sshd
tcp6 0 0 :::22 :::* LISTEN 9117/sshd
[root@hadoop ~]#

建议通过pid找port
即先查进程pid
[root@hadoop ~]# ps -ef | grep ssh
root 9117 1 0 15:50 ? 00:00:00 /usr/sbin/sshd -D
再查端口号port
[root@hadoop ~]# netstat -nlp |grep 9117
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 9117/sshd

1: 启动一个进程 ps 必须
2: 可能启动一个port netstat 不是必须(一个服务可以有端口号也可以没有端口号)


3、安装服务,打开web

[root@hadoop ~]# yum install httpd

[root@hadoop ~]# service httpd start
Redirecting to /bin/systemctl start httpd.service

#插入知识点
service httpd start centos6.x 7.x
systemctl start httpd centos7.x


[root@hadoop ~]# systemctl start httpd
[root@hadoop ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since 四 2019-11-21 16:23:35 CST; 18s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 9968 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─9968 /usr/sbin/httpd -DFOREGROUND
├─9969 /usr/sbin/httpd -DFOREGROUND
├─9970 /usr/sbin/httpd -DFOREGROUND
├─9971 /usr/sbin/httpd -DFOREGROUND
├─9972 /usr/sbin/httpd -DFOREGROUND
└─9973 /usr/sbin/httpd -DFOREGROUND

1121 16:23:35 hadoop systemd[1]: Starting The Apache HTTP Server...
1121 16:23:35 hadoop httpd[9968]: AH00558: httpd: Could not reliably determine the server's fully qualified domain nam...message
11月 21 16:23:35 hadoop systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@hadoop ~]#
[root@hadoop ~]# ps -ef|grep http
root 9968 1 0 16:23 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
[root@hadoop ~]# netstat -nlp | grep 9968
tcp6 0 0 :::80 :::* LISTEN 9968/httpd

http://自己机器的ip:80/

http协议 80
https协议 443



4、场景: 在centos部署大数据组件,发现一个错误 Connection refused 防火墙 web iptables

(1)ping ip 测试ip
(2)telnet ip port 测试ip和端口号

部署telnet命令
window cmd黑窗口 不带 telnet命令 ,需要去安装一下(见下图) 重启电脑

Linux
[root@hadoop ~]# yum install -y telnet
[root@hadoop ~]# which telnet
/usr/bin/telnet
[root@hadoop ~]# telnet ip 端口号

高危命令

1
2
3
4
5
6
7
8
9
10
rm -rf /

vi编辑生产配置文件的时候 100行 进行备份保存==》 cp xxx.xml xxx.xml20191117

ps 进程 xxx,top命令查询夯住的 / 删除xxx进程
kill -9 进程pid
kill -9 进程pid 进程pid 进程pid
kill -9 $(pgrep -f 匹配关键词)

杀进程之前,先ps 找到相关的进程,搞清楚,哪些是你要杀的,不然造成生产事故

yum安装软件 和 wget安装软件

1
2
3
4
5
6
7
[root@hadoop ~]# yum search xxx
[root@hadoop ~]# yum install -y xxx-yyy
[root@hadoop ~]# yum remove xxx-yyy

wget 网址
比如
[root@hadoop ~]# wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.16.2.tar.gz

压缩解压

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
zip
zip -r xxx.zip ./* 在文件夹里面
zip -r xxx.zip AAA/* 在外面

unzip xxx.zip

大数据组件的压缩包几乎都是后缀 tar.gz
tar -xzvf hadoop-2.6.0-cdh5.16.2.tar.gz
tar -czvf hadoop-2.6.0-cdh5.16.2.tar.gz hadoop-2.6.0-cdh5.16.2/*


Examples:
tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.
tar -tvf archive.tar # List all files in archive.tar verbosely.
tar -xf archive.tar # Extract all files from archive.tar.

修改sudo权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
创建用户:
#adduser username
设置密码:
#passwd username
回车,顺序录入新密码及确认密码
授权sudo权限,需要修改sudoers文件。
a. 首先找到文件位置,示例中文件在/etc/sudoers位置。
whereis sudoers

b.强调内容 修改文件权限,一般文件默认为只读。
ls -l /etc/sudoers 查看文件权限
chmod -v u+w /etc/sudoers 修改文件权限为可编辑

c. 修改文件,在如下位置增加一行,保存退出。
vim /etc/sudoers 进入文件编辑器
文件内容改变如下:
root ALL=(ALL) ALL 已有行
username ALL=(ALL) ALL 新增行

d. 记得将文件权限还原回只读。
ls -l /etc/sudoers 查看文件权限
chmod -v u-w /etc/sudoers 修改文件权限为只读

注意修改后 普通用户也是无法访问/root下的文件的,如果要访问需要将/root下的所有权限改为777